@@ -1153,34 +1153,29 @@ def member_activity_contribute_welfare_unlock(request, administrator):  | 
            ||
| 1153 | 1153 | 
                except MemberActivityContributionWelfareInfo.DoesNotExist:  | 
            
| 1154 | 1154 | 
                return response(MemberActivityContributionWelfareStatusCode.ACTIVITY_CONTRIBUTION_WELFARE_NOT_FOUND)  | 
            
| 1155 | 1155 | 
                 | 
            
| 1156 | 
                - try:  | 
            |
| 1157 | 
                - unlocking_info, _ = MemberActivityContributionWelfareUnlockingInfo.objects.create(  | 
            |
| 1158 | 
                - brand_id=administrator.brand_id,  | 
            |
| 1159 | 
                - admin_id=admin_id,  | 
            |
| 1160 | 
                - user_id=contribution.user_id,  | 
            |
| 1161 | 
                - activity_id=contribution.activity_id,  | 
            |
| 1162 | 
                - contribution_id=contribution_id,  | 
            |
| 1163 | 
                - welfare_id=welfare_id,  | 
            |
| 1164 | 
                - welfare_type=welfare.welfare_type,  | 
            |
| 1165 | 
                - welfare_value=welfare.welfare_value,  | 
            |
| 1166 | 
                - )  | 
            |
| 1167 | 
                - except:  | 
            |
| 1168 | 
                - unlocking_info = MemberActivityContributionWelfareUnlockingInfo.objects.get(  | 
            |
| 1169 | 
                - brand_id=administrator.brand_id,  | 
            |
| 1170 | 
                - user_id=contribution.user_id,  | 
            |
| 1171 | 
                - activity_id=contribution.activity_id,  | 
            |
| 1172 | 
                - welfare_id=welfare_id,  | 
            |
| 1173 | 
                - )  | 
            |
| 1156 | 
                + unlocking_info, _ = MemberActivityContributionWelfareUnlockingInfo.objects.get_or_create(  | 
            |
| 1157 | 
                + brand_id=administrator.brand_id,  | 
            |
| 1158 | 
                + user_id=contribution.user_id,  | 
            |
| 1159 | 
                + activity_id=contribution.activity_id,  | 
            |
| 1160 | 
                + welfare_id=welfare_id,  | 
            |
| 1161 | 
                +        defaults={
               | 
            |
| 1162 | 
                + 'admin_id': admin_id,  | 
            |
| 1163 | 
                + 'contribution_id': contribution_id,  | 
            |
| 1164 | 
                + 'welfare_type': welfare.welfare_type,  | 
            |
| 1165 | 
                + 'welfare_value': welfare.welfare_value,  | 
            |
| 1166 | 
                + }  | 
            |
| 1167 | 
                + )  | 
            |
| 1174 | 1168 | 
                 | 
            
| 1175 | 1169 | 
                # Send template_message  | 
            
| 1176 | 1170 | 
                try:  | 
            
| 1177 | 1171 | 
                user = UserInfo.objects.get(user_id=contribution.user_id, status=True)  | 
            
| 1178 | 1172 | 
                except UserInfo.DoesNotExist:  | 
            
| 1179 | 1173 | 
                return response(UserStatusCode.USER_NOT_FOUND)  | 
            
| 1174 | 
                +  | 
            |
| 1180 | 1175 | 
                try:  | 
            
| 1181 | 1176 | 
                act = MemberActivityInfo.objects.get(activity_id=contribution.activity_id, status=True)  | 
            
| 1182 | 1177 | 
                except MemberActivityInfo.DoesNotExist:  | 
            
| 1183 | 
                - return ()  | 
            |
| 1178 | 
                + return (MemberActivityStatusCode.ACTIVITY_NOT_FOUND)  | 
            |
| 1184 | 1179 | 
                 | 
            
| 1185 | 1180 | 
                     data = {
               | 
            
| 1186 | 1181 | 
                         "first": {
               | 
            
                @@ -0,0 +1,18 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 3.2.16 on 2022-11-04 08:08  | 
            |
| 3 | 
                +  | 
            |
| 4 | 
                +from django.db import migrations  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +class Migration(migrations.Migration):  | 
            |
| 8 | 
                +  | 
            |
| 9 | 
                + dependencies = [  | 
            |
| 10 | 
                +        ('member', '0050_memberactivityinfo_contribution_content_placeholder'),
               | 
            |
| 11 | 
                + ]  | 
            |
| 12 | 
                +  | 
            |
| 13 | 
                + operations = [  | 
            |
| 14 | 
                + migrations.AlterUniqueTogether(  | 
            |
| 15 | 
                + name='memberactivitycontributionwelfareunlockinginfo',  | 
            |
| 16 | 
                +            unique_together={('brand_id', 'activity_id', 'welfare_id', 'user_id')},
               | 
            |
| 17 | 
                + ),  | 
            |
| 18 | 
                + ]  | 
            
                @@ -859,7 +859,7 @@ class MemberActivityContributionWelfareUnlockingInfo(BaseModelMixin, BrandInfoMi  | 
            ||
| 859 | 859 | 
                verbose_name_plural = _(u'会员活动投稿福利解锁信息')  | 
            
| 860 | 860 | 
                 | 
            
| 861 | 861 | 
                unique_together = (  | 
            
| 862 | 
                -            ('activity_id', 'welfare_id', 'user_id'),
               | 
            |
| 862 | 
                +            ('brand_id', 'activity_id', 'welfare_id', 'user_id'),
               | 
            |
| 863 | 863 | 
                )  | 
            
| 864 | 864 | 
                 | 
            
| 865 | 865 | 
                def __unicode__(self):  |